/************************************************************************

								Heroes IV
					  Copyright 2000, The 3DO Company

	------------------------------------------------------------------
  							 script_action_type.h

	$Header: /heroes4/script_action_type.h $

	$NoKeywords: $

 ************************************************************************/

#if !defined( SCRIPT_ACTION_TYPE_H_INCLUDED )
#define SCRIPT_ACTION_TYPE_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <string>

enum t_script_context;

// --------------------------------------------------------------------------
// t_script_action_type enum
// --------------------------------------------------------------------------

enum t_script_action_type
{
	k_script_action_none = -1,
	k_script_action_build_building,
	k_script_action_change_owner,
	k_script_action_clear_loss_condition_text,
	k_script_action_clear_loss_message,
	k_script_action_clear_victory_condition_text,
	k_script_action_clear_victory_message,
	k_script_action_combat,
	k_script_action_conditional,
	k_script_action_decrease_cur_spell_points,
	k_script_action_decrease_damage,
	k_script_action_decrease_luck,
	k_script_action_decrease_max_hit_points,
	k_script_action_decrease_max_spell_points,
	k_script_action_decrease_morale,
	k_script_action_decrease_population,
	k_script_action_decrease_speed,
	k_script_action_delete_adv_objects,
	k_script_action_disable_std_victory_condition,
	k_script_action_display_text,
	k_script_action_enable_std_victory_condition,
	k_script_action_give_artifacts,
	k_script_action_give_creatures,
	k_script_action_give_materials,
	k_script_action_give_skill,
	k_script_action_give_spell,
	k_script_action_increase_cur_movement,
	k_script_action_increase_cur_spell_points,
	k_script_action_increase_damage,
	k_script_action_increase_experience,
	k_script_action_increase_experience_level,
	k_script_action_increase_luck,
	k_script_action_increase_max_hit_points,
	k_script_action_increase_max_spell_points,
	k_script_action_increase_morale,
	k_script_action_increase_population,
	k_script_action_increase_skill,
	k_script_action_increase_speed,
	k_script_action_no_op,
	k_script_action_lose,
	k_script_action_question,
	k_script_action_remove_script,
	k_script_action_remove_this_adv_object,
	k_script_action_sequence,
	k_script_action_set_boolean_variable,
	k_script_action_set_loss_condition_text,
	k_script_action_set_loss_message,
	k_script_action_set_numeric_variable,
	k_script_action_set_victory_condition_text,
	k_script_action_set_victory_message,
	k_script_action_take_artifacts,
	k_script_action_take_creatures,
	k_script_action_take_materials,
	k_script_action_trigger_event,
	k_script_action_win,

	k_script_action_type_count,
};

// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
std::string const & get_keyword( t_script_action_type type );

// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
t_script_action_type get_script_action_type( std::string const & keyword );

// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
bool available( t_script_action_type action_type, t_script_context context );

#endif // !defined( SCRIPT_ACTION_TYPE_H_INCLUDED )
